﻿#define _CRT_SECURE_NO_WARNINGS
/*给你一个整数 n，请你判断该整数是否是 2 的幂次方。
如果是，返回 true ；否则，返回 false 。
如果存在一个整数 x 使得 n == 2x ，则认为 n 是 2 的幂次方。
*/
#include<stdio.h>
#include<stdlib.h>

//法一：位运算
//bool isPowerOfTwo(long n)
//{
//	if ((n > 0) && (n & (n - 1)) == 0)
//	{
//		return true;
//	}
//	return false;
//}

//法二循环%
bool isPowerOfTwo(long n)
{
	if (n < 1)
	{
		return false;
	}
	while (n)
	{
		if (n == 1)
		{
			return true;
		}
		if (n % 2 != 0)
		{
			return true;
		}
		n /= 2;
	}
	return false;
}